//
// Description: 842. 排列数字
// Created by Loading on 2022/5/15.
//

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 10;

int n;
// 路径数组，状态数组
int path[N];
bool st[N];

void dfs(int index) {
    if (index == n) {
        // 搜索结束，输出结果
        for (int i = 0; i < n; ++i) {
            cout << path[i] << ' ';
        }
        cout << endl;
        return;
    }
    for (int i = 1; i <= n; ++i) {
        if (!st[i]) {
            // 更改状态
            st[i] = true;
            path[index] = i;
            dfs(index + 1);
            // 回溯，恢复现场
            st[i] = false;
        }
    }
}

int main() {
    cin >> n;
    dfs(0);

    return 0;
}